package com.kws.system.domain;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <b>TbInvoice</b>
 *
 * @description: TbInvoice <br>
 * @date: 2024/11/19 17:20 <br>
 * @author: lhm <br>
 * @version: 1.0 <br>
 */
public class TbInvoice implements Serializable {
    @ApiModelProperty(value = "主键ID")
    private Long id;

    @ApiModelProperty(value = "商户ID")
    private Long companyId;

    @ApiModelProperty(value = "合同编号")
    private String contractNo;

    @ApiModelProperty(value = "项目ID")
    private Long itemId;

    @ApiModelProperty(value = "购买方ID")
    private Long purchaserId;

    @ApiModelProperty(value = "发票类型：0-普通发票，1-增值税专用发票")
    private String invoiceType;

    @ApiModelProperty(value = "开票日期")
    private Date makeInvoiceTime;

    @ApiModelProperty(value = "服务名称")
    private String serverName;

    @ApiModelProperty(value = "规格型号")
    private String specificationsAndModels;

    @ApiModelProperty(value = "单位")
    private String unit;

    @ApiModelProperty(value = "数量")
    private Integer number;

    @ApiModelProperty(value = "单价")
    private Integer unitPrice;

    @ApiModelProperty(value = "金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "税率")
    private Integer taxRate;

    @ApiModelProperty(value = "税额")
    private BigDecimal amountPayable;

    @ApiModelProperty(value = "税价合计")
    private BigDecimal total;

    @ApiModelProperty(value = "发票地址")
    private String invoiceUr;

    @ApiModelProperty(value = "可用状态：0-不可用，1-可用")
    private String enable;

    @ApiModelProperty(value = "创建用户")
    private String createUser;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "修改用户")
    private String updateUser;

    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public Long getItemId() {
        return itemId;
    }

    public void setItemId(Long itemId) {
        this.itemId = itemId;
    }

    public Long getPurchaserId() {
        return purchaserId;
    }

    public void setPurchaserId(Long purchaserId) {
        this.purchaserId = purchaserId;
    }

    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public Date getMakeInvoiceTime() {
        return makeInvoiceTime;
    }

    public void setMakeInvoiceTime(Date makeInvoiceTime) {
        this.makeInvoiceTime = makeInvoiceTime;
    }

    public String getServerName() {
        return serverName;
    }

    public void setServerName(String serverName) {
        this.serverName = serverName;
    }

    public String getSpecificationsAndModels() {
        return specificationsAndModels;
    }

    public void setSpecificationsAndModels(String specificationsAndModels) {
        this.specificationsAndModels = specificationsAndModels;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public Integer getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(Integer unitPrice) {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Integer getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(Integer taxRate) {
        this.taxRate = taxRate;
    }

    public BigDecimal getAmountPayable() {
        return amountPayable;
    }

    public void setAmountPayable(BigDecimal amountPayable) {
        this.amountPayable = amountPayable;
    }

    public BigDecimal getTotal() {
        return total;
    }

    public void setTotal(BigDecimal total) {
        this.total = total;
    }

    public String getInvoiceUr() {
        return invoiceUr;
    }

    public void setInvoiceUr(String invoiceUr) {
        this.invoiceUr = invoiceUr;
    }

    public String getEnable() {
        return enable;
    }

    public void setEnable(String enable) {
        this.enable = enable;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", companyId=").append(companyId);
        sb.append(", contractNo=").append(contractNo);
        sb.append(", itemId").append(itemId);
        sb.append(", purchaserId=").append(purchaserId);
        sb.append(", invoiceType").append(invoiceType);
        sb.append(", makeInvoiceTime=").append(makeInvoiceTime);
        sb.append(", serverName").append(serverName);
        sb.append(", specificationsAndModels=").append(specificationsAndModels);
        sb.append(", unit").append(unit);
        sb.append(", number=").append(number);
        sb.append(", unitPrice").append(unitPrice);
        sb.append(", amount=").append(amount);
        sb.append(", taxRate").append(taxRate);
        sb.append(", amountPayable").append(amountPayable);
        sb.append(", total=").append(total);
        sb.append(", invoiceUr").append(invoiceUr);
        sb.append(", enable").append(enable);
        sb.append(", createUser=").append(createUser);
        sb.append(", createTime").append(createTime);
        sb.append(", updateUser").append(updateUser);
        sb.append(", createTime=").append(updateTime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}
